Технологический журнал. Описание и включение

Коллеги, начинаем серию статей, посвященных технологическому журналу.

В этой серии мы с вами рассмотрим практику использования полезного инструмента для расследования проблем производительности и стабильности 1С:Предприятие – технологического журнала.

Другие статьи из серии «Технологический журнал»:
«ТЖ: Настройка»
«ТЖ: Анализ логов»
«ТЖ: События и фильтры»

Далеко не все специалисты о нем знают, а умеют грамотно использовать лишь немногие. Попытаемся исправить ситуацию :)

Описание и включение технологического журнала

Что Вы узнаете из этой статьи?

  • Описание и предназначение инструмента Технологический журнал
  • Как включить Технологический журнал в 1С:Предприятие 8
  • Принцип формирования и сохранения логов и дампов

Описание ТЖ

Технологический журнал (далее ТЖ) – это средство для логирования работы платформы на низком уровне.

ТЖ предназначен для расследования ошибок, анализа и диагностики различных проблем в работе платформы 1С:Предприятие.

С помощью ТЖ можно выяснить, какие запросы работают медленно и откуда они вызываются, при выполнении какого кода «падают» рабочие процессы сервера, куда «утекает» память и многое, многое другое.

Все инструменты анализа производительности платформы используют ТЖ для получения информации. При желании и доскональном изучении вопроса с помощью ТЖ вы можете написать свой инструмент анализа производительности.

ТЖ можно собирать как для процессов сервера 1С, так и для клиентских приложений. Соответственно, и набор событий, которые можно фиксировать в ТЖ, будет отличаться.

Клиентские логи и дампы крайне редко вызывают интерес, поэтому в статье мы будем рассматривать ТЖ исключительно с точки зрения сервера. Тем не менее все, что здесь написано, также подходит и для клиентских логов.

Логи в технологическом журнале

С помощью ТЖ можно собирать логи и настраивать формирование дампов в случае аварийного завершения работы процесса.

Логи – это файлы с расширением .log, где информация хранится в текстовом виде.

Дампы – это файл с расширением .mdmp, который содержит в себе содержимое оперативной памяти процесса на момент «падения».
Дамп бывает крайне необходим для расследования проблем стабильности платформы. Мы не можем самостоятельно анализировать дампы, т.к. у нас нет исходного кода платформы, но мы можем отправить их в техническую поддержку или на партнерский форум и получить решение нашей проблемы.

Включение ТЖ

По умолчанию технологический журнал включен и работает, но собирает очень ограниченный объем данных.

Под минимальным объемом данных подразумеваются 2 вещи:

1) Формирование дампов минимального размера в случае аварийного завершения работы процессов кластера 1С (ragent, rmngr или rphost).

По умолчанию дамп создается в каталоге:

 %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\dumps

Если вы используете Windows Vista и выше, то будет использоваться каталог:

 %LOCALAPPDATA%\1C\1Cv82\dumps

Для 8.3 вместо каталога 1Cv82 используется 1Cv8.

2) Для 8.3 в минимальный ТЖ входит формирование логов с одним событием SYSTEM с уровнем Error.

Логи сохраняются в каталоге:

 %USERPROFILE%\Local Settings\Application Data\1C\1Cv8\logs

Для Windows Vista и старше используется каталог:

 %LOCALAPPDATA%\1C\1Cv8\logs

Данные логи по умолчанию будут хранится 24 часа, после чего платформа будет удалять файлы логов, которые превышают этот порог.

Чаще всего информации из ТЖ по умолчанию недостаточно, и необходимо его настраивать вручную.

Чтобы произвести тонкую настройку ТЖ, необходимо создать файл logcfg.xml с определенной структурой в определенном месте.

Данный файл необходимо разместить в каталоге:

 C:\Program Files\1Cv82\conf (для 8.3 каталог 1Cv8)

В этом случае настройки ТЖ будут действовать для всех версий , которые установлены на данном компьютере, и для всех пользователей. Этот вариант используется чаще всего, и именно его рекомендуем применять.

При настройках ЦУПа, облачных сервисов контроля производительности и прочих инструментов, где надо указывать путь к logcfg, также лучше использовать именно этот каталог, иначе при обновлении платформы или изменении имени пользователя, под которым запущена служба сервера , описанные инструменты перестанут работать и придется менять настройку.

Тем не менее есть и другие варианты, хотя и используются они гораздо реже. Опишу лишь то, что с наибольшей вероятностью вам может понадобится.

Чтобы настроить ТЖ только для одной версии платформы, размещаем logcfg.xml в каталоге:

 C:\Program Files\1Cv82\8.2.19.106\bin\conf

Где 8.2.19.106 – это номер нужной вам версии.

Крайне редко, но все же, может возникнуть необходимость настроить ТЖ отдельно для каждого пользователя, под которым запущена служба сервера .

Тогда размещаем logcfg в каталоге:

 %USERPROFILE%\Local Settings\Application Data\1C\1Cv82\Conf

Для ОС Windows Vista и старше:

 %LOCALAPPDATA%\1C\1Cv82\Conf

Это может потребоваться, если у вас, например, 1 служба сервера используется как рабочая, а вторая для отладки. При необходимости можно запустить службы под разными пользователями и собирать ТЖ только для одной из них, чтобы не загружать второй сервер и не собирать в логах лишние данные, либо сделать для каждой из служб свои настройки ТЖ.

Настройки из logcfg считываются не моментально, а каждые 60 секунд, причем каждый из процессов кластера считывает файл настроек независимо от других процессов. Например, сначала могут появиться логи процесса rmngr и только через 45 секунды логи rphost.

Для выключения ТЖ достаточно удалить или переименовать файл logcfg.xml.

Бурмистров Андрей

В следующих статьях рассмотрим нюансы настройки ТЖ и практику использования.

А пока закрепите полученный материал на своей тестовой информационной базе :)

PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Статья по программированию - в PDF-формате

Статья в PDF-формате

Вы можете скачать эту статью в формате PDF по следующей ссылке:

Ссылка доступна для зарегистрированных пользователей)


Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)

Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.

Если вы хотите узнать больше об оптимизации 1С и быть экспертом в этой области – пройдите наш новый курс «Оптимизация производительности 1С:Предприятие».

Учебный курс «Оптимизация и ускорение 1C:Предприятия 8»

Комментарии / обсуждение (18):

  1. Евгений

    Здравствуйте, Андрей. Вы написали “…необходимо создать файл logcfg.xml с определенной структурой в определенном месте.”, а как узнать о структуре файла? У пользователя периодически появляется ошибка блокировки HRESULT=80040E31, хотелось бы её причину отследить…

    • Андрей Бурмистров

      Евгений, приветствую!
      У вас 2 вопроса, отвечу по очереди.
      1. Как узнать о структуре файла?
      Структура файла ТЖ описана в нашей статье https://курсы-по-1с.рф/articles/технологический-журнал-настройка
      Так же можно найти описание ТЖ в документации на ИТС, в руководстве администратора и еще очень много. Проще всего для настройки ТЖ использовать обработку на ИТС.

      2. Периодически появляется ошибка блокировки HRESULT=80040E31
      На самом деле для расследования этой проблемы исследовать логи ТЖ вам не нужно. Это проблема ожидания на блокировках причем на уровне СУБД, а для ее исследования вам нужен инструмента анализа ожиданий на блокировках. Вы можете для этих целей использовать платный ЦУП (Центр управления производительностью) или бесплатный сервис анализа блокировок от Гилева. С помощью одного из этих инструментов вы сможете определить причину ожиданий и если есть нужные знания решить проблему.
      В самом ТЖ вы лишь увидите текст ошибки по таймауту из-за блокировки, хотя этот текст проще вам будет посмотреть в журнале регистрации (если он конечно включен).

  2. pesveka

    Подскажите, можно ли отловить в ТЖ изменения настроек Журнала регистрации, например, отключение записи событий?

    • Андрей Бурмистров

      Специального такого события нет, но можно посмотреть что настройки ЖР были изменены, хотя и нельзя определить что именно там было изменено.
      В случае измерения настроек в ТЖ будет вот такая строка:

      09:20.791016-1,SCALL,3,process=rphost,p:processName=Demo,OSThread=6724,t:clientID=311,t:applicationName=Designer,t:computerName=Srv1,t:connectID=275,SessionID=1,Usr=Администратор,ClientID=264,Interface=2ebdaa8c-4a75-48f7-94bf-8206623aa9bb,IName=IClusterLogMngr,Method=10,CallID=161664,MName=changeLogMngrInfo

      Вы можете сделать фильтр на свойства t:applicationName=Designer и MName=changeLogMngrInfo

      • pesveka

        Наберусь наглости задать еще один вопрос по журналу регистрации.
        Если в кластере два центральных сервера, то как идет запись в ЖР?
        Если ничего не настраивать, то журналы регистрации для одной и той же ИБ на серверах разные? Или дублируются? Как сделать так, чтобы все писалось только в одну папку в служебном каталоге кластера одного из серверов? Если помощью требований назначения функциональности запретить одному серверу работать с журналом регистрации, то события будут писаться в папку другого сервера или вообще не будут для сеансов на данном сервере?

        • Андрей Бурмистров

          >Если в кластере два центральных сервера, то как идет запись в ЖР?
          Если ничего не настраивать, то журналы регистрации для одной и той же ИБ на серверах разные?
          Журнал пишется только на одном из серверов если ничего дополнительно не настравивать.

          >Или дублируются?
          Нет, журнал не дублируется.

          >Как сделать так, чтобы все писалось только в одну папку в служебном каталоге кластера одного из серверов?
          Для этого необходимо с помощью требований назначения функциональности перенести сервис ЖР на какой-то один сервер.

          >Если помощью требований назначения функциональности запретить одному серверу работать с журналом регистрации, то события будут писаться в папку другого сервера или вообще не будут для сеансов на данном сервере?
          Будут писаться в папку другого сервера.

          Рекомендуется закрепить ЖР за каким-то одним из серверов, что бы не получилась нижеописанная ситуация.
          Допустим с помощью требований назначения функциональности указано что одна база работает на отдельном сервере, другие на другом. В этом случае ЖР действий по этой базе будет вестись на отдельном сервере, ЖР по другим базам будет на другом сервере, и это нужно учитывать при резервном копировании. Так же возможна ситуация когда работы с отдельной базой или рег. заданием вынесли на отдельный сервер, а потом вернули обработно. Тогда всей действия в этой базе или в этом рег. задании которые были за период пока они выполнялись на отдельном сервере, будут только в ЖР на этом отдельном сервере. С другими серверами кластера эта информация не синхронизируется. Поэтому что бы не рисковать, рекомендуется сделаять явное указание где хранить ЖР, в таком случае ЖР всегда будет храниться в одном месте при любых условиях.

        • Андрей Бурмистров

          Насколько мне известно нет, можно лишь так же как и раньше отследить что с настройками ЖР были произведены какие-то действия.

  3. Alexandr056

    здравствуйте! сформированный файл logcfg.xml нужно положить в папку где установлен клиент? или обязательно на сервере приложений 1с? судя по некоторым сообщениям у вас на сайте, я понял что положив файлик в каталог C:\Program Files (x86)\1cv8\conf, как пример, на 64х системе, на сервере терминалов как пример, логи будут собираться только клиентские, это так?

    • Андрей Бурмистров

      Можно положить и туда и туда, можно собирать логи и клиентские и серверные.
      Если 32х разрядный сервер 1С установлен на сервере терминалов, тогда будут собираться и клиентские и серверные логи.

  4. Петр

    Здравствуйте.
    Почему совершенно не освещён вопрос для платформы под Linux? Уже почти два года как она существует, и уже есть много успешно работающих проектов.

    • Евгений Гилев (Мастер-тренер)

      Добрый день, Петр!

      Курс, который будет освещать эту тему и ряд других сейчас в разработке.

  5. Andrefan

    Добрый день!
    В предыдущих статьях была удобная возможность сразу сохранить в pdf. Можно и в этих сделать для лентяев? :-)

    • Евгений Гилев (Мастер-тренер)

      Добрый день!

      Да, сделаем.

      Постараемся до конца этой недели :)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.